<?php
/**
 * Game_Event_Building
 *
 * Класс Game_Event_Building отвечает за события строительства зданий
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Game_Event_Building extends Game_Event_Item {
	
	protected static $_eventType = 'building';
	
	/**
	 * (non-PHPdoc)
	 * @see Game_Event_Item::finish()
	 */
	public function finish($isAutoDeleteEvent = true) {
		$objEventInfo = $this->_objEvent;
		// Двойной вызов обновления параметров места сделан намеренно. Иначе ресурсы неверно считаться будут.
		$objPlace = new Game_Place($objEventInfo->getField('ID_place'));
		$objPlace->calculateAndUpdatePlaceParams();
		$stmt = "
			UPDATE `place_building`
			SET `level` = " . $objEventInfo->getField('amount') . "
			WHERE
				`ID_place` = " . $objEventInfo->getField('ID_place') . "
				AND `ID_position` = " . $objEventInfo->getField('ID_essence') . "
		";
		$objDB = Service_Database::instance();
		$objDB->query($stmt);
		// Двойной вызов обновления параметров места сделан намеренно. Иначе ресурсы неверно считаться будут.
		$objPlace->refreshBuildingsInfo();
		$objPlace->calculateAndUpdatePlaceParams();
		$objUser = new Game_User($objPlace->getField('ID_user'));
		$objUser->calculateAndUpdatePopulation();
		if ($isAutoDeleteEvent) $this->_deleteEvent();
	}

	
}
?>